#include<iostream>
//类
class Student
{   //成员函数（方法）
public:
//缺省构造（无参构造）
Student(){   std::cout<<"无参构造函数\n";       }
//带参构造函数
Student(std::string name,int age)
{
        std::cout<<"带参构造函数\n";
        m_name=name;
        m_age=age;
}
    void SetName(std::string name);
    void SetAge(int age);
    void show();
    //赋值运算符的重载  调用时机 s=s1
void operator=(Student &s)
{       std::cout<<"赋值运算符的重载\n";
        m_name=s.m_name;
        m_age=s.m_age;
}
 Student(Student &s)
 {  std::cout<<"拷贝构造函数\n";
    m_name=s.m_name;
    m_age=s.m_age;
 }
 //析构函数：无返回值  函数名和类型相同 ~  无参数
 //自动调用
 //析构函数不能重载
 ~Student()
 {
    std::cout<<"析构函数\n";
 }  
   
    //属性
private:
    std::string m_name;
    int m_age;
};

void Student::SetName(std::string name)
    {
       m_name=name;
    }

void Student::SetAge(int age)
    {
        m_age=age;
    }

void Student::show()
    {

        std::cout<<"学生名字："<<m_name<<"\n"<<"学生年龄："<<m_age<<std::endl;

    }

   


int main()
{   

    Student s("lisi",21);
    s.show();
    Student s1;
    s1=s;

    return 0;
}